Redux を使って状態を管理している Web サービスなどで「状態の流れ」を調査しやすくしてくれるツールです。僕的には開発時には必須な感じで使っています。
Chrome 拡張を入れる
Chrome 依存になってしまいますが、 Chrome 拡張で入れてしまうのが1番てっとり早いかなと思います。この辺は開発時に1番使うので問題ないかなと考えてます。
入れたあとはwindow
に__REDUX_DEVTOOLS_EXTENSION__
というフック関数が増えているはずです。適当なページを開いて Devtool のコンソールを開いて確認できます。
Redux の createStore に REDUX_DEVTOOLS_EXTENSION を渡す
Redux のcreateStore
の最後の引数にはenchancer
という関数が渡せることになっています。これはzzz(yyy(xxx(...)))
というような順番に適応する関数の集まりみたいなやつです。(compose(zzz, yyy, zzz)()
と書かれていたりもする)
ここに__REDUX_DEVTOOLS_EXTENSION__
を渡します。今回はこれだけで1つなのでそのまま実行すればいいです。
createStore(
reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(),
);
TypeScript と一緒に
そのままだと型警告が来ると思うのでこんな感じでwindow
を拡張するといいです。
declare namespace window {
export const __REDUX_DEVTOOLS_EXTENSION__: Function | undefined;
}